Add configure-time check for Windows DDK for delbin. Improve expat guessing.
authorrobertlipe@gmail.com <robertlipe@gmail.com@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Sun, 20 Nov 2011 20:38:32 +0000 (20:38 +0000)
committerrobertlipe@gmail.com <robertlipe@gmail.com@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Sun, 20 Nov 2011 20:38:32 +0000 (20:38 +0000)
git-svn-id: http://gpsbabel.googlecode.com/svn/trunk@4125 f51c46e8-681c-474f-0cfe-069cfd0219fb

gpsbabel/configure
gpsbabel/configure.in
gpsbabel/delbin.c

index 0505e7e3d254df4eb3d29065add9e0730a2de10d..ec4f9e1c194ddb1c97778cb775229c06f90d8a02 100755 (executable)
@@ -4179,7 +4179,67 @@ echo "${ECHO_T}USB skipped" >&6; }
                OSJEEPS=jeeps/gpsusbstub.o
        else
                OSJEEPS=jeeps/gpsusbwin.o
-               USB_LIBS="-lsetupapi -lhid"
+               USB_LIBS="-lsetupapi"
+               { echo "$as_me:$LINENO: checking for Windows DDK" >&5
+echo $ECHO_N "checking for Windows DDK... $ECHO_C" >&6; }
+               old_LIBS="$LIBS"
+               LIBS="$LIBS -lhid"
+               cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <windows.h>
+                       #include <hidsdi.h>
+int
+main ()
+{
+HANDLE              HidDeviceObject;
+                       HIDD_ATTRIBUTES    Attributes;
+                       HidD_GetAttributes(HidDeviceObject, &Attributes);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_WDK 1
+_ACEOF
+
+                       USB_LIBS=${USB_LIBS}" -lhid"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+                LIBS="$old_LIBS"
        fi
        ;;
     *-*-darwin*)
@@ -4378,7 +4438,8 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
        } && test -s conftest.$ac_objext; then
   { echo "$as_me:$LINENO: result: yes" >&5
 echo "${ECHO_T}yes" >&6; }
-               cat >>confdefs.h <<\_ACEOF
+
+cat >>confdefs.h <<\_ACEOF
 #define HAVE_LINUX_HID 1
 _ACEOF
 
@@ -4462,7 +4523,6 @@ cat >>confdefs.h <<\_ACEOF
 #define HAVE_LIBEXPAT 1
 _ACEOF
 
-
                fi
                if test -f /opt/local/lib/libexpat.a ; then
                        # libexpat installed via macports
@@ -4473,7 +4533,6 @@ cat >>confdefs.h <<\_ACEOF
 #define HAVE_LIBEXPAT 1
 _ACEOF
 
-
                fi
                if test -f /usr/local/lib/libexpat.a ; then
                        # libexpat installed from source
@@ -4484,7 +4543,6 @@ cat >>confdefs.h <<\_ACEOF
 #define HAVE_LIBEXPAT 1
 _ACEOF
 
-
                fi
                ;;
        *-gentoo-freebsd*)
@@ -4498,21 +4556,18 @@ cat >>confdefs.h <<\_ACEOF
 #define HAVE_LIBEXPAT 1
 _ACEOF
 
-
                fi
                ;;
-       *)
-                       EXPAT_LIB=-lexpat
-               ;;
        esac
 
 
 fi
 
-{ echo "$as_me:$LINENO: result: $EXPAT_LIB" >&5
-echo "${ECHO_T}$EXPAT_LIB" >&6; }
 
-{ echo "$as_me:$LINENO: checking for XML_ParserCreate in -lexpat" >&5
+if test "x${EXPAT_LIB}" = x; then
+  { echo "$as_me:$LINENO: result: try to autodetect" >&5
+echo "${ECHO_T}try to autodetect" >&6; }
+  { echo "$as_me:$LINENO: checking for XML_ParserCreate in -lexpat" >&5
 echo $ECHO_N "checking for XML_ParserCreate in -lexpat... $ECHO_C" >&6; }
 if test "${ac_cv_lib_expat_XML_ParserCreate+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4579,8 +4634,13 @@ cat >>confdefs.h <<\_ACEOF
 #define HAVE_LIBEXPAT 1
 _ACEOF
 
+    EXPAT_LIB=-lexpat
 
+fi
 
+else
+  { echo "$as_me:$LINENO: result: $EXPAT_LIB" >&5
+echo "${ECHO_T}$EXPAT_LIB" >&6; }
 fi
 
 
index d116df481c3ea50cc2894948d0f6eb1bfec598ec..74a7c3ab2010bc894e0170dc8a8350a36c928210 100644 (file)
@@ -162,7 +162,21 @@ case "$target" in
                OSJEEPS=jeeps/gpsusbstub.o
        else
                OSJEEPS=jeeps/gpsusbwin.o
-               USB_LIBS="-lsetupapi -lhid"
+               USB_LIBS="-lsetupapi"
+               AC_MSG_CHECKING(for Windows DDK)
+               old_LIBS="$LIBS"
+               LIBS="$LIBS -lhid"
+               AC_TRY_LINK([#include <windows.h>]
+                       [#include <hidsdi.h>],
+                       [HANDLE              HidDeviceObject;
+                       HIDD_ATTRIBUTES    Attributes;
+                       HidD_GetAttributes(HidDeviceObject, &Attributes);],
+                       [AC_MSG_RESULT(yes)]
+                       [AC_DEFINE(HAVE_WDK, 1, [Defined if you have Windows DDK])]
+                       [USB_LIBS=${USB_LIBS}" -lhid"],
+                       [AC_MSG_RESULT(no)]
+                ) 
+                LIBS="$old_LIBS"
        fi
        ;;
     *-*-darwin*)
@@ -232,7 +246,7 @@ case "$target" in
                        ioctl(0, HIDIOCSREPORT, &rinfo);
                }],
                AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_LINUX_HID, 1),
+               AC_DEFINE(HAVE_LINUX_HID, 1, [Defined if you have Linux HID]),
                AC_MSG_RESULT(no))
        ;;
 esac
@@ -290,21 +304,18 @@ AC_ARG_WITH(libexpat,
                        EXPAT_LIB=/sw/lib/libexpat.a
                        LIBS="$LIBS -L/sw/lib"
                          AC_DEFINE(HAVE_LIBEXPAT, 1, [Defined if you have libexpat])
-                         AC_SUBST(EXPAT_LIB)
                fi
                if test -f /opt/local/lib/libexpat.a ; then
                        # libexpat installed via macports
                        EXPAT_LIB=/opt/local/lib/libexpat.a
                        LIBS="$LIBS -L/opt/local/lib"
                          AC_DEFINE(HAVE_LIBEXPAT, 1, [Defined if you have libexpat])
-                         AC_SUBST(EXPAT_LIB)
                fi
                if test -f /usr/local/lib/libexpat.a ; then
                        # libexpat installed from source
                        EXPAT_LIB=/usr/local/lib/libexpat.a
                        LIBS="$LIBS -L/usr/local/lib"
                          AC_DEFINE(HAVE_LIBEXPAT, 1, [Defined if you have libexpat])
-                         AC_SUBST(EXPAT_LIB)
                fi                              
                ;;
        *-gentoo-freebsd*)
@@ -314,21 +325,22 @@ AC_ARG_WITH(libexpat,
                if test -f /usr/local/lib/libexpat.a ; then
                        EXPAT_LIB=/usr/local/lib/libexpat.a
                          AC_DEFINE(HAVE_LIBEXPAT, 1, [Defined if you have libexpat])
-                         AC_SUBST(EXPAT_LIB)
                fi
                ;;
-       *)
-                       EXPAT_LIB=-lexpat
-               ;;
        esac
   ]
 )
-AC_MSG_RESULT($EXPAT_LIB)
 
-AC_CHECK_LIB([expat], [XML_ParserCreate], 
-  AC_DEFINE(HAVE_LIBEXPAT, 1, [Defined if you have libexpat])
-  AC_SUBST(EXPAT_LIB)
-)
+if test "x${EXPAT_LIB}" = x; then
+  AC_MSG_RESULT(try to autodetect)
+  AC_CHECK_LIB([expat], [XML_ParserCreate], 
+    AC_DEFINE(HAVE_LIBEXPAT, 1, [Defined if you have libexpat])
+    EXPAT_LIB=-lexpat
+  )
+else
+  AC_MSG_RESULT($EXPAT_LIB)
+fi
+AC_SUBST(EXPAT_LIB)
 
 AC_MSG_CHECKING(for efence)
 AC_ARG_ENABLE(efence,
index 57b847aec0438edadf196ed05149086c9a626066..16f6d4d9b83bceaf5b96119f4dc24bcec7ee5423 100644 (file)
@@ -2425,7 +2425,7 @@ ff_vecs_t delbin_vecs = {
 
 //-----------------------------------------------------------------------------
 // Windows
-#if _WIN32
+#ifdef HAVE_WDK
 
 #undef HAVE_LIBUSB
 
@@ -2550,7 +2550,7 @@ delbin_os_ops_t delbin_os_ops = {
   win_os_packet_write
 };
 
-#endif // _WIN32
+#endif // HAVE_WDK
 
 //-----------------------------------------------------------------------------
 // MacOS X
@@ -3006,7 +3006,7 @@ delbin_os_ops_t delbin_os_ops = {
 
 //-----------------------------------------------------------------------------
 // stubs
-#if !(_WIN32 || __APPLE__ || HAVE_LIBUSB || HAVE_LINUX_HID)
+#if !(HAVE_WDK || __APPLE__ || HAVE_LIBUSB || HAVE_LINUX_HID)
 static void
 stub_os_init(const char* fname)
 {